前言
- map 会先把同步操作执行完,并返回。之后再一次次的执行异步任务
- for 是等待异步返回结果后再进入下一次循环
- forEach 无法实现 async、await 同步效果,实际是异步执行
map 函数原理
- 循环数组,把数组每一项的值,传给回调函数
- 将回调函数处理后的结果 push 到一个新的数组
- 返回新数组
map 函数是同步执行的,循环每一项时,到给新数组值都是同步操作
1 | const arr = [1, 2, 3, 4, 5]; |
代码执行结果:
- map 不会等到回调函数的异步函数返回结果,就会进入下一次循环
- 执行完同步操作后,就会返回结果,所以 map 返回的值是 promise
使用 for
1 | const arr = [1, 2, 3, 4, 5]; |
forEach
1 | const arr = [1, 2, 3, 4, 5]; |